home *** CD-ROM | disk | FTP | other *** search
/ World of Education / World of Education.iso / world_j / jabr103.zip / ALJABR.DOC < prev    next >
Text File  |  1991-04-06  |  32KB  |  679 lines

  1.  
  2.                                     Al-Jabr V1.03
  3.                     The Numerically Oriented Mathematics Program.
  4.  
  5.                         Copyright (c) 1991 by Uchenna Ogbuji
  6.  
  7.  
  8.      PART I: INTRODUCTION AND MATHEMATICAL EXPRESSIONS
  9.  
  10.           Al-Jabr is a multi-purpose mathematical program. It can be used as a
  11.      sophisticated calculator with multiple-graphing capabilities. I wrote it
  12.      with college students in mind and others who would appreciate some
  13.      assistance on their mathematical problems but can hardly afford the more
  14.      sophisticated symbolic packages.
  15.  
  16.           Al-Jabr uses a command-line interface. You enter commands at the
  17.      command prompt (">"), they are executed, and then you are returned to the
  18.      prompt. You just enter "quit" at the prompt to exit the program. The screen
  19.      is divided into two. The command area occupies the lower 5 lines; this is
  20.      where you enter your commands and where Al-Jabr displays its status and
  21.      error messages. The upper part of the screen is the viewing area where
  22.      graphs are plotted and where other information may be displayed.
  23.  
  24.           Al-Jabr understands mathematical information in the form of
  25.      "expressions". Expressions are basically functions that can be evaluated,
  26.      graphed, and stored in memory. Expressions consist of numbers and
  27.      constants, variables, operators, functions and series:
  28.  
  29.      Numbers:       Real numbers in decimal or scientific notation.You can enter
  30.                     numbers to any number of decimal places but they will be
  31.                     truncated to about 13 significant digits in the computer.
  32.                     Numbers are expressed in scientific notation using the
  33.                     standard notation for floating point numbers: there is a
  34.                     mantissa which contains the significant digits followed by
  35.                     the letter "e" or "E" which means "times ten to the power"
  36.                     and then the exponent, which is the power to which ten is
  37.                     raised. The exponent can be preceded by a sign ("+" or "-").
  38.                     There must be no spaces within a number whatsoever, not even
  39.                     between the mantissa and the exponent.
  40.                     Examples:
  41.                          -10
  42.                          30.673197508
  43.                          235.37e24      (235.37 times ten to the power 24)
  44.                          9.674E-46      (9.674 times ten to the power minus 46)
  45.  
  46.  
  47.      Constants:     Common constants that have been pre-defined by Al-Jabr. They
  48.                     are all represented by a colon followed by a letter. There
  49.                     are only three currently pre-defined constants. There are :p
  50.                     or pi (3.141592654), :e which is the mathematical constant e
  51.                     (2.718281828), and :c which is the degrees-to-radians  
  52.                     conversion factor (:p/180 = 0.017453293). I realize that the
  53.                     colons are cumbersome but they are neccesary to        
  54.                     differentiate constants from variables.
  55.  
  56.      variables:     Variables are represented by single letters. Thus you can
  57.                     have up to 26 of them. They can contain any real number.
  58.                     Upper-case letters are considered the same as lowercase
  59.                     letters.
  60.  
  61.      operators:     Al-Jabr supports all of the common arithmetical operators:
  62.                     +         addition;
  63.                     -         subtraction ;
  64.                     *         multiplication;
  65.                     /         division;
  66.                     ^         exponentiation (a^b returns a to the power b);
  67.                     mod       modular operator (a mod b divides a by b and
  68.                               returns the remainder);
  69.                     \ or div  integer division ( a\b [or a div b] returns the
  70.                               largest integer that is not greater than a/b);
  71.                     -         a unary minus sign (as in -51) simply returns the
  72.                               negative of the value to the right.
  73.  
  74.      functions      Most of the common mathematical functions are supported as
  75.                     well:
  76.                     sin x     *returns the sine of x;
  77.                     cos x     *returns the cosine of x;
  78.                     tan x     *returns the tangent of x;
  79.                     sinh x    returns the hyperbolic sine of x;
  80.                     cosh x    returns the hyperbolic cosine of x;
  81.                     tanh x    returns the hyperbolic tangent of x;
  82.                     sqrt x    returns the POSITIVE square root of x;
  83.                     log x     returns the logarithm of x to the base 10;
  84.                     ln x      returns the natural logarithm of x (the logarithm
  85.                               to the base :e);
  86.                     exp x     returns :e to the power x;
  87.                     abs x     returns the absolute value of x;
  88.                     asin x    *returns the inverse sine or arcsine of x;
  89.                     acos x    *returns the inverse cosine or arccosine of x;
  90.                     atan x    *returns the inverse tangent or arctangent of x;
  91.                     x!        returns the factorial of x (eg. 5!=5*4*3*2*1,
  92.                               3!=3*2*1. Note: 1!=1, 0!=1.)
  93.  
  94.                     *Please note that all trigonometric expressions are computed
  95.                     in terms of radians, not degrees.
  96.  
  97.      series:        You might want to skip the discussion of sequence summation
  98.                     and products until you have read the rest of this manual or
  99.                     until you have used the tutorial. The following explanation
  100.                     is perhaps simpler for those with some programming     
  101.                     experience in any computer language.
  102.                     Al jabr can quickly compute sums and products of sequences.
  103.                     sums of sequences are expressed as follows:
  104.                     [n = start, stop, step, expression]
  105.                     while products of sequences are expressed as follows:
  106.                     {n = start, stop, step, expression}
  107.                     where n can be replaced by any variable, "start", "stop",
  108.                     "step" (which is optional), and "expression" can be replaced
  109.                     by any expression. The operation of the sequence functions
  110.                     can best be explained with a few examples:
  111.                     
  112.                     [q=3,9,2,q^2]       Al-Jabr makes the following series of
  113.                                         calculations:
  114.  
  115.                                         sum = 0.0
  116.                                         q = 3.0
  117.                               loop:     if q is greater than 9 then goto end
  118.                                         q = q + 2
  119.                                         sum = sum + q^2
  120.                                         goto loop
  121.                               end:      return sum
  122.  
  123.                     {b=5,10,1,b}        Al-Jabr does the following:
  124.  
  125.                                         product = 1.0
  126.                                         b = 5.0
  127.                               loop:     if b is greater than 10 then goto end
  128.                                         b = b + 1
  129.                                         product = product * b
  130.                                         goto loop
  131.                               end:      return product
  132.  
  133.                     [n=1,100,5-4,sin n] Al-Jabr does the following:
  134.                                         
  135.                                         sum = 0.0
  136.                                         n = 1.0
  137.                               loop:     if n is greater than 100 then goto end
  138.                                         n = n + (5-4)
  139.                                         sum = sum + sin n
  140.                                         goto loop
  141.                               end:      return sum
  142.  
  143.                     {x=-20,20,2,1}      product = 1.0
  144.                                         x = -20
  145.                               loop:     if x is greater than 20 then goto end
  146.                                         x = x + 2
  147.                                         product = product * 1
  148.                                         goto loop
  149.                               end:      return product
  150.  
  151.                You may have observed that the last example will simply return
  152.                1.0! If you still do not understand the summation and product of
  153.                sequence functions, perhaps the examples in the tutorial will
  154.                clarify them. Note that as a short cut if you don't specify a
  155.                step (if you just use a comma), Al-Jabr assumes a step value of
  156.                1, i.e. [k=1,3,,k] is evaluated as [k=1,3,1,k], and         
  157.                {i=24,100,,sqrt i} is evaluated as {i=24,100,1,sqrt i}.
  158.  
  159.  
  160.           Expressions are composed of any mathematical combination of the above,     hence sample expressions are:
  161.  
  162.           3 * sin x
  163.           -57.2
  164.           2*x^2 + x -1
  165.           exp (f*ln f)
  166.           cos (20 * :c)       Note: this returns the cosine of 20 degrees, not
  167.                               radians (when multiplied to an angular value in
  168.                               degrees :c converts it into a value in radians)
  169.           [a=1,10,1,a]        Note: this returns the sum of all integers between
  170.                               1 and 10
  171.           sqrt ( abs (sin (:p * m)))
  172.           x^2 + x*y + y^2
  173.           log (n!)
  174.           {y=3,33,3,y/10}
  175.           57 * 3e-67
  176.           cosh 3.33
  177.           atan (-b/a)
  178.           3 + [n=1,4,1,n^2] / 2 - (1 / :e)
  179.  
  180.           In mathematics one has to have a certain order in which calculations
  181.      are done. For instance the expression 5-3*4 could have two answers: if we
  182.      did the subtraction first we would get 8, if we did the multiplication
  183.      first we would get -7. To avoid confusion there is a generally accepted
  184.      order of evaluation of operators which Al-Jabr follows. This leads to what
  185.      is known as operator precedence which is a table of the order in which
  186.      operators are evaluated. Note that normal precedence can be overridden with
  187.      parentheses because expresions in parentheses are always evaluated first.
  188.      For instance, multiplication has a higher precedence than subtraction and
  189.      thus Al-Jabr would normally return -7 for 5-3*4, but if we write instead
  190.      (5-3)*4 then the expression in parenthesis (the subtraction) would be
  191.      evaluated first and Al-Jabr would return 8. Here is a table of operator
  192.      precedence in Al-Jabr. The highest items are evaluated first and the lowest
  193.      operators are evaluated last.
  194.  
  195.  
  196.                          OPERATOR PRECEDENCE IN AL-JABR
  197.  
  198.  
  199.      1: (),[],{}    <i.e all bracketed expressions and summation or product                           of sequences are evaluated first of all>
  200.  
  201.      2: !           <factorial>
  202.  
  203.      3: -           <unary minus>
  204.  
  205.      4: sin,cos,tan,tanh,abs,tanh,sinh,cosh,asin,acos,atan,sqrt,log,ln,exp
  206.  
  207.      5: ^
  208.  
  209.      6: *,/,\,div,mod
  210.  
  211.      7: +,-              <binary plus and minus>
  212.  
  213.  
  214.      Whithin any given precedence level the operators are evaluated from left to
  215.      right EXCEPT on level 4 where they are evaluated from right to left. For
  216.      instance, 16/4*2 will return 8 because since the / and the * are on the
  217.      same level, they are considered from left to right and the / is evaluated
  218.      first. However sin cos x would first of all evaluate cos x and then find
  219.      the sine of that.
  220.           Here are more examples: sin 2*x  will first evaluate the sine of 2 and
  221.      then multiply this by x since sin has higher precedence than *, but sin
  222.      (2*x) would first of all find 2*x and then find the sine of the result.
  223.      However, sin -x would first of all negate x and then find the sine of the
  224.      result since the unary minus has higher precedence than sin. There is one
  225.      exception to the above precedence tables. I had to make this exception to
  226.      conform to regular math usage: -sin x first evaluates the sine of x and
  227.      then negates it although the unary minus has higher precedence than the sin
  228.      function. The same goes for -log x, -atan x, -sqrt x, -cosh x etc.. You can
  229.      experiment a little to help understand this concept of precedence.
  230.  
  231.           Al-Jabr has a set of commands for manipulating expressions and for
  232.      other uses. These commands are the subject of the next section.
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.      PART II: THE COMMMAND SET
  244.  
  245.  
  246.                                      ASSIGNMENT:
  247.  
  248.           The simplest command in Al-Jabr is the assignment. You can assign any
  249.      valid value to any variable in the following way:
  250.           variable=expression
  251.      where "variable" can be any variable from a to z, and "expression" can be
  252.      any valid expression. When you make an assignment the expression is first
  253.      evaluated and Al-Jabr tells you the value, then the variable is updated in
  254.      memory so that any time you use it in any future expression it will return
  255.      the value you have assigned it. For example if you enter
  256.  
  257.           z = -5 * abs (-20)
  258.  
  259.      Al-Jabr evaluates 5*abs(-20) and reports that the answer is -100.00 and
  260.      then updates z so that if you were to type "c = z", c would be assigned the
  261.      value of z which is -100.
  262.           Please note that when you first run Al-Jabr, all variables are set to
  263.      zero, however you can use them in any expression without first assigning
  264.      them a value. They will just return 0.
  265.  
  266.  
  267.  
  268.                                        STORE:
  269.  
  270.           The store command will be easier to understand if you have gone
  271.      through the tutorial. You can store up to 9 expressions in memory at a
  272.      time. The first expression you store is labelled #1, the second, #2 etc. up
  273.      to #9. You can use any of these stored expressions anywhere in other
  274.      expressions, eg. if sin x has been stored as #3, then
  275.  
  276.           y=cos x + #3
  277.  
  278.      is the same as
  279.  
  280.           y=cos x + sin x
  281.  
  282.      Stored expressions can be used to avoid typing the same expression over and
  283.      over again.
  284.           Expressions are stored in memory with the "store" command. You can use
  285.      it in two ways. one way is to enter:
  286.  
  287.           store  variable = expression
  288.  
  289.      this does exactly the same thing as a regular assignment but it also stores
  290.      "expression" in memory.
  291.           Al-Jabr also remembers the last expression you used in any command,
  292.      whether assignment or plotting. If you just enter "store" and nothing else
  293.      at the command prompt Al-Jabr will store the last expression you used in
  294.      any command in memory. For example if you enter
  295.  
  296.           v = 4*acos f
  297.  
  298.      Al_Jabr will make the normal assignment. If you then enter "store", Al-Jabr
  299.      remembers that the last expression you worked with was "4*acos f and stores
  300.      it in memory. whichever method you use Al-Jabr will inform you of the
  301.      number of your new expression. If you forget it you can use the "show"
  302.      command which is discussed next.
  303.  
  304.  
  305.  
  306.                                         SHOW:
  307.  
  308.           You can display the values of variables and all stored expressions
  309.      expressions using the show command. You can just enter "show" followed by a
  310.      variable or stored expression name and Al-Jabr will display the contents of
  311.      that variable or expression. Here are some examples:
  312.  
  313.           show g
  314.  
  315.      will display the contents of the variable a.
  316.  
  317.           show #5
  318.  
  319.      will show the stored expression #5. You can also show all the variables or
  320.      all the stored expressions at once with the commands: "show all" and show
  321.      #all" respectively. When you execute either of these commands a window
  322.      opens in the viewing area displaying all the stored expressions and
  323.      variables. Both of these windows can be displayed at the same time. While
  324.      these windows are open, if you change the value of a variable or add a new
  325.      expression, the windows are updated automatically.
  326.  
  327.  
  328.  
  329.                                        PRINT:
  330.  
  331.           The print command sends a list of all stored expressions and variables
  332.      to your printer, if you have one. You just enter "print" at the prompt and
  333.      all the information is printed. Simplicity!
  334.  
  335.  
  336.  
  337.                                         PLOT:
  338.  
  339.           Al Jabr has very good graphing, scaling, clipping and error-trapping
  340.      features. This is all accomplished by the plot command. The syntax of the
  341.      plot command may take some practice. Again perhaps it will be easier to
  342.      complete the tutorial before reading this full documentation. The general
  343.      syntax to plot a graph in the viewing area is as follows:
  344.  
  345.           plot x;expression;xmin,xmax[,ymin,ymax]
  346.  
  347.      where "x" can be replaced by any variable, "expression" can be replaced by
  348.      any expression. xmin, xmax, ymin, and ymax refer to the minimum and maximum
  349.      values for the horizontal and vertical axes respectively. ymin and ymax are
  350.      optional; if they are not specified, Al-Jabr will automatically scale the
  351.      vertical axis so that the whole graph can be shown (except, of course,
  352.      unrepresentable regions like singular points and imaginary numbers).
  353.      Perhaps some examples will elucidate:
  354.  
  355.           plot k; 3*k + 1 ;-5,5,-10,10
  356.  
  357.      draws the graph of the line 3k+1, letting k vary from -5 to 5 on the
  358.      horizontal axis and clipping off all values of 3k+1 that are greater than
  359.      10 or less than -10. Now if you were to enter instead just
  360.  
  361.           plot k; 3*k + 1;-5,5
  362.  
  363.      Al-Jabr would first of all calculate the maximum and minimum values 3k + 1
  364.      can take between k=-5 and k=5. It will then scale the vertical axis so that
  365.      the entire line can be shown. This scaling process takes a little time so
  366.      if you do know the extrema of your function whithin your horizontal axis
  367.      range, or if you are only interested in a certain region of the graph then
  368.      you might want to specify ymax and ymin.
  369.           Please note that Al-Jabr cannot perform automatic scaling for graphs
  370.      that have a singularity (e.g. ln (x) at x=0) or a domain error (eg. acos
  371.      (x) at x<-1 or x>1). For example, if you were to enter
  372.  
  373.           plot c; ln (3-c) ;0,10
  374.  
  375.      then Al-Jabr would attempt to scale your function between c=0 and c=10, but
  376.      it would find a singularity at c=3 and terminate with an error. You can
  377.      still view the function ln (3-c) between 0 and 10 but you would have to
  378.      specify the vertical range, for example:
  379.  
  380.           plot c; ln (3-c) ;0,10,0,2
  381.  
  382.      would show the whole graph except for portions where ln (3-c) > 2 or ln (3-
  383.      c) < 0, and the portions where c >= 0 (because ln 0 is a singularity and
  384.      negative logarithms do not exist). Here are some other sample graphs you
  385.      might want to try. There are more in the tutorial.
  386.  
  387.           plot a; 1/a ;-5,5,-5,5             (a hyperbola)
  388.           plot x; 3*x^2 - 4*x +2; -10,10     (a cubic polynomial)
  389.           plot r; 2*sin x + cos (2*x);-5,5   (a "humped" cosine wave)
  390.           plot d; 1/tan x ;-3.14,3.14,-10,10 (the cotangent curve)
  391.  
  392.      And for the engineers among you, here is the fourier series approximation
  393.      (taken to 3 terms) to an even square wave:
  394.  
  395.           plot t; 4/:p * [n=1,5,2,(1/n)*sin (n*:p*t)]; -8,8,-4,4
  396.  
  397.           Note: if you have a graph in the viewing area, you can still use the
  398.      "show" command to display all variables and stored expressions in the
  399.      viewing area without losing the graph that is currently there. The list of
  400.      variables and stored expressions will block out parts of the graph, but you
  401.      can always show the graph again by entering:
  402.  
  403.           show plot
  404.  
  405.      this will redraw the last graph that was on the screen.
  406.  
  407.  
  408.  
  409.                                         OVER:
  410.  
  411.           With Al-Jabr you can show more than one graph at once. To plot a graph
  412.      over one that is currently in the viewing area, use the "over" command. The
  413.      syntax of the "over" command is similar to that of "plot" except you don't
  414.      specify the ranges of the horizontal or vertical axes. The new graph will
  415.      be plotted on exactly the same grid as the older one. For example:
  416.  
  417.           over x; sin -x + cos x
  418.  
  419.      will plot the curve of sin (-x) + cos x  over the previous curve with the
  420.      same axis scalings. You can use the "over" command again and again. There
  421.      is no limit to the number of curves you can display at any time. When you
  422.      use the "over" command you are prompted for the color you wish the curve to
  423.      be drawn in. Al-Jabr allows graphs in four different colors, white, grey,
  424.      yellow, and cyan, to enhance clarity.
  425.           Note: If you already have a graph plotted in the viewing area, and you
  426.      issue another "plot" command, the first graph will be erased and your new
  427.      one will be displayed. "Over" is the only way to show more than one graph
  428.      simultaneously.
  429.  
  430.  
  431.  
  432.                                         CFIT:
  433.  
  434.           You can fit a polynomial curve to a set of data with the "cfit"
  435.      command. Al-Jabr reads the data from a data file which you specify with the
  436.      "cfit" command. The general syntax is:
  437.  
  438.           cfit [path\]filename.ext
  439.  
  440.      where "path\" is an optional dos path (drive and/or subdirectory) and
  441.      "filename.ext" can be replaced by any valid DOS filename. For example,
  442.  
  443.           cfit a:infile.dat
  444.  
  445.      will read the data out of the file "infile.dat" in the "a" drive. You can
  446.      use a text editor or a word-processor that can save documents in plain
  447.      ASCII format to make the data file. The format of the data file is very
  448.      simple. It should consist of rows of data separated by carriage returns
  449.      (ASCII character 13). Each row contains an x-value a corresponding y-value
  450.      and then an optional weight. The weighting factor is an optional
  451.      nonnegative number you can assign to each data pair to determine how
  452.      important that data pair will be in determining the resulting polynomial.
  453.      For instance, if you used a more reliable method to obtain some data pairs
  454.      you might assign them a higher weighting value. A weight of 1 gives the
  455.      normal importance to a data pair, a weight less than 1 assigns a lower
  456.      importance, and a weight of more than 1 assigns a greater importance. Note
  457.      that there should be no spaces between the last number on a line (or row)
  458.      and the carriage return. Some sample data file contents follow. <cr> means
  459.      "carriage return".
  460.  
  461.           3.4       6.2       1<cr>
  462.           2.007     4.8       3<cr>
  463.           4.34      9.134     1<cr>
  464.           5.9       10.29     0.7<cr>
  465.           7.31      11.5      0.6<cr>
  466.  
  467.      note that
  468.  
  469.           0.09      34.6      1<cr>
  470.           0.10      30.5      1<cr>
  471.           0.11      25.89     1<cr>
  472.           0.12      23.0      1<cr>
  473.           0.13      19.76     1<cr>
  474.           0.14      15.09     1<cr>
  475.           
  476.      is exactly the same as
  477.  
  478.           0.09      34.6<cr>
  479.           0.10      30.5<cr>
  480.           0.11      25.89<cr>
  481.           0.12      23.0<cr>
  482.           0.13      19.76<cr>
  483.           0.14      15.09<cr>
  484.  
  485.      because when a weight is not specified, the weighting factor is assumed to
  486.      be 1 i.e. normal weighting.
  487.           When all the data pairs have been read in, Al-Jabr finds a polynomial
  488.      of best STATISTICAL fit. This means that the polynomial might not touch
  489.      every data point on the curve, because it is assumed that experimental
  490.      errors and the like may be involved, but the curve will represent the
  491.      general trend of the data in a way that preserves the highest information
  492.      content. This makes your graph more reliable for extrapolating or
  493.      interpolating other values from your curve. When Al-Jabr computes the
  494.      fitted polynomial it is plotted in the viewing area and all the input pairs
  495.      of data are shown as small circles. The curve-fitting function is an
  496.      experimental statistical addition to Al-Jabr to try out further statistical
  497.      abilities that may be added to later versions. I would appreciate some
  498.      feedback as to how useful users find this polynomial curve-fitting facility
  499.      and which other statistical functions would be most desirable in a new
  500.      version of Al-Jabr.
  501.  
  502.  
  503.  
  504.                                       CAPTURE:
  505.  
  506.           It is all very well to have an impressive graph or set of graphs on
  507.      your screen but I suspect an alterable, hard copy would prove even more
  508.      useful for most. Al-Jabr can capture any graph to a graphics file in the
  509.      popular PCX format. The PCX format is so popular that most paint programs
  510.      and graphics viewing programs support it. Many advanced word-processors and
  511.      desk-top publishing programs can import .PCX directly into documents so you
  512.      can include Al-Jabr graphs in papers and the like. You could alter the
  513.      graphs with paint programs like Zsoft's PC Paintbrush (TM) in order to say,
  514.      place labels or the like on the graphs.
  515.           To capture a graph to a file you use the "capture" command, specifying
  516.      the file name. The general syntax is:
  517.  
  518.           capture [path\]filename.ext
  519.  
  520.      Where path is any valid dos path. The extension will usually be .pcx, of
  521.      course, because that is the standard extension for PCX format files. So if
  522.      you were to enter
  523.  
  524.           capture c:\pbrush\graph1.pcx
  525.  
  526.      Al-Jabr would store the graphs currently being shown in the viewing area to
  527.      the filename "graph1.pcx" in the subdirectory "\pbrush" of the "c" drive.
  528.      The capturing process may take about a minute.
  529.           Note: any grphical output can be captured, including the output from
  530.      the "cfit" command, and multiple graphs plotted using "over".
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.      PART III ERROR MESSAGES
  550.  
  551.  
  552.           When Al-Jabr meets a difficulty it cannot handle, or if it can't
  553.      understand your command, an error message will be issued and you'll
  554.      generally have to correct the problem and re-enter the command. Here are
  555.      Al-Jabr's error messages and explanations of the situations that might have
  556.      caused them.
  557.  
  558.      Error 00: Unrecognized command.
  559.  
  560.           This means Al-Jabr does not understand your command at all. The only
  561.      commands, apart from variable assignment, recognized by Al-Jabr at this
  562.      time are "store", "show", "print", "plot", "over", "cfit", "capture", and
  563.      "quit".
  564.  
  565.      Error 01: Syntax error in command.
  566.  
  567.           Al-Jabr knows your command but you didn't follow the required syntax.
  568.      See the manual section on commands (part II) for descriptions of the
  569.      correct syntax.
  570.  
  571.      Error 02: Number too large or small to process.
  572.  
  573.           Al-Jabr can only handle numbers between about -1.7e+308 and 1.7e+308
  574.      (which is quite an enormous range actually) and if it comes across any
  575.      number outside this range in any calculation the above error will occur. If
  576.      this error occurs you must take steps to reduce the magnitude of initial,
  577.      intermediate or final values in the calculation.
  578.  
  579.      Error 03: The argument to FUNCTION is out of its domain.
  580.  
  581.           Where FUNCTION is replaced by the mathematical function that caused
  582.      the error. This means that the argument to the function is out of the
  583.      domain in which the function can be evaluated. For example, a negative
  584.      argument to the logarithm or square root functions will cause such an
  585.      error.
  586.  
  587.      Error 04: The argument to FUNCTION is too large.
  588.  
  589.           Some functions, notably sin, cos, sinh and cosh, are difficult to
  590.      evaluate accurately when their arguments are too large. If Al-Jabr cannot
  591.      accurately evaluate a function for this reason the above error will be
  592.      generated.
  593.  
  594.      Error 05: A number approaching +/- infinity was encountered.
  595.  
  596.           This is similar to error 2 and occurs when Al-Jabr encounters a
  597.      singularity.
  598.  
  599.      Error 06: Division by Zero.
  600.  
  601.           A division by zero has been attempted, resulting in a value Al-Jabr
  602.      cannot handle.
  603.  
  604.      Error 07: Syntax error in expression.
  605.  
  606.           There is a logical error in your mathematical expression. Quite a few
  607.      situations can cause this error. The most common are forgetting to close a
  608.      bracket and missing operators. Please check the expression you last used
  609.      and make sure it is valid under the rules of Al-Jabr and mathematics.
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.      Error 09: Syntax error in sequence summation of product.
  617.  
  618.           Check that you included all the required parameters and commas, and
  619.      closed the bracket of your sequence summation or product. The correct
  620.      syntax for sequence summation and product is explained in part I of the
  621.      manual.
  622.  
  623.      Error 10: Undefined user expression.
  624.  
  625.           If you are trying to specify a stored user expression with the #X
  626.      notation, X must be a digit between 1 and 9 and there must be no space
  627.      between the "#" and the digit. In any other case the above error will be
  628.      generated.
  629.  
  630.      Error 11: Invalid horizontal axis range.
  631.  
  632.           This occurs in the plot function when either you specify the minimum
  633.      and maximum ranges for the horizontal axis to be the same, or if you make
  634.      the minimum larger than the maximum.
  635.  
  636.      Error 12: Invalid vertical axis range.
  637.  
  638.           This occurs in the plot function when either you specify the minimum
  639.      and maximum ranges for the vertical axis to be the same, or if you make the
  640.      minimum larger than the maximum.
  641.  
  642.      Error 13: Invalid statistics file format.
  643.  
  644.           Al-Jabr cannot correctly obtain data from the file you specified with
  645.      the "cfit" command. See the "cfit" command description for the correct
  646.      format of the data file.
  647.  
  648.      Error 14: Unable to create the file FILENAME.
  649.  
  650.           Most probably FILENAME (which is replaced by whatever filename Al-Jabr
  651.      is having trouble with) is not a valid DOS filename.
  652.  
  653.      Error 15: Unable to open data file FILENAME.
  654.  
  655.           The FILENAME you specified cannot be found on the path you specified
  656.      (or on the current path if you didn't specify a path) or perhaps it is not
  657.      a valid DOS filename.
  658.  
  659.      Error 92, Error 93, Error 99.
  660.  
  661.           These errors are not ever meant to occur, and if they do, they might
  662.      reflect serious bugs in Al-Jabr. For this reason if you encounter any of
  663.      these errors please contact me immediately and tell me which one you
  664.      encountered and the circumstances under which you encountered it. My
  665.      Prodigy ID number is KTXR86A; You can send me mail at the following
  666.      address:
  667.  
  668.                          Uchenna Ogbuji
  669.                          c/o Dr L. U. Thomas-Ogbuji
  670.                          20373 Lorrain Road #F-7
  671.                          Fairview Park OH 44126
  672.  
  673.      or you can leave e-mail for me (Uche G. Ogbuji) on Ed Gelb's Database BBS
  674.      [300,1200 baud, 8/1/N] #(201)-694-7425.
  675.  
  676.  
  677.  
  678.  
  679.